﻿using System;
using System.Collections.Generic;
using System.Linq.Expressions;

namespace HobSoft.SoccerBet2014.Domain.Core
{
    using Domain.Models.Core;
    public interface ISampleDataService : IService
    {
        IList<T> GetAll<T>() where T : class, IModel;
        IList<T> GetMany<T>(Expression<Func<T, bool>> predicate) where T : class, IModel;
        IList<T> GetMany<T>(params object[] keys) where T : class, IModel;
        T Get<T>(object key) where T : class, IModel;
        T Get<T>(Expression<Func<T, bool>> predicate) where T : class, IModel;
        T AddOrUpdate<T>(T model) where T : class, IModel;
        int AddOrUpdate<T>(IList<T> models) where T : class, IModel;
        bool Delete<T>(T model) where T : class, IModel;
        bool Delete<T>(object key) where T : class, IModel;
        int DeleteMany<T>(Expression<Func<T, bool>> predicate) where T : class, IModel;
    }
}
